<?php
/**
 * Creates an example PDF TEST document using TCPDF
 * @package Reportes
 * @version 1.0
 * @abstract Reporte de las facturas
 * @author Jordan Campos Delgado
 * @since 2014-10-15
 * * <
 * 
 * Autor:
 * 
 * Fecha:
 *
 * Descripcion:
 *
 * >
 */


// Include the main TCPDF library (search for installation path).
//Con el error reporting no se muestra el warning comunmente presentado al iniciar session nuevamente
error_reporting(0);
// Se retoma la session.
session_start();
// Se establecen cookies de session para http o https
setcookie(session_name(), session_id(), NULL, NULL, NULL, 0);
setcookie(session_name(), session_id(), NULL, NULL, NULL, 1);

require_once('tcpdf_include.php');
require_once('../../modelos/impresionModelo.php');
require_once('../../modelos/principalModelo.php');

$strTipoDocumento   = $_POST['txtTipoDocumento'];
$strTipoImpresion   = $_POST['strTipoImpresion'];
$strDBName          = $_SESSION['DBName'];
$plazo              = 0;
for($i=0;$i<=1;$i++)
{

    if($_POST['txtTipoDocumento'] == 'FACTURA')
    {
        $strIDDocumento = $_POST['txtFactura'];
        $dtDocumento = selectFactura($strIDDocumento);
    }
    else
    {    
        $strIDDocumento = $_POST['txtPedido'];
        $dtDocumento = selectPedido($strIDDocumento);
    }
    $numDocumento = "";
    $fecha = "";
    $tipoCambio = 0;
    $totalNeto = 0;
    $totalGeneral = 0;
    $totalBruto = 0;
    $totalDesc = 0;
    $iv = 0;
    foreach ($dtDocumento as $item) {
        $numDocumento   = $item['NumDocumento']; 	
        $plazo          = $item['Plazo']; 			
        $fecha          = $item['Fecha']; 			
        $tipoCambio     = $item['TipoCambio']; 	
        $totalNeto      = $item['TotalNeto']; 		
        $direccion      = $item['Direccion']; 		
        $totalGeneral   = $item['TotalGeneral']; 	
        $totalBruto     = $item['TotalBruto']; 	
        $totalDesc      = $item['TotalDesc']; 		
        $iv             = $item['IV'];

    }

if($_POST['txtTipoDocumento'] == 'FACTURA')
    $dtDetalle = selectFacturaDetalle1($_POST['txtFactura']);
else
    $dtDetalle = selectPedidoDetalle1($_POST['txtPedido']);    

if($tipoCambio)
{    
    if($_POST['txtTipoDocumento'] == 'FACTURA')
        $espacio = 175;//
    else 
        $espacio = 97;//
    
}
else
    if($_POST['txtTipoDocumento'] == 'FACTURA')
        $espacio = 48;
    else 
        $espacio = 58;
    

$result = $espacio+((count($dtDetalle))* 18); // 18 es el promedio del espacio por registro

$width = 210;
$height = 344 + $result;//344 Una pagina sin registros mas 133 con un registro = 477

    $pagelayout = array($width, $height);
// create new PDF document
//$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, $pagelayout, true, 'UTF-8', false);

// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor(gethostname());
$pdf->SetTitle($_POST['txtTipoDocumento'].' #'.$numDocumento);
//$pdf->SetSubject('Factura original');
//$pdf->SetKeywords('Factura, PDF, original');

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128));
$pdf->setFooterData(array(0,64,0), array(0,64,128));

// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

// set margins
//$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetMargins(1, 0, 0);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(0/*PDF_MARGIN_FOOTER*/);

// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, 0);

// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
	require_once(dirname(__FILE__).'/lang/eng.php');
	$pdf->setLanguageArray($l);
}

// ---------------------------------------------------------

// set default font subsetting mode
$pdf->setFontSubsetting(true);

// Set font
// dejavusans is a UTF-8 Unicode font, if you only need to
// print standard ASCII chars, you can use core fonts like
// helvetica or times to reduce file size.
$pdf->SetFont('times', '', 20, '', true);

$pdf->SetPrintHeader(false);
$pdf->SetPrintFooter(false); 
$pdf->getPage($FullScreen=true);
// Add a page
// This method has several options, check the source code documentation for more information.

$pdf->AddPage();
$pdf->resetHeaderTemplate();

// set text shadow effect
$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));

$nombreCliente =  buscarNombreCliente();

$dtCompanias = buscarCompannias($_SESSION['codCompania']);
foreach ($dtCompanias as $item) {
        $nombreCompannia    = $item['Nombre'];
        $fltIVCompania      = $item['IV'];
        $cedula             = $item['Cedula'];
        $telefono           = $item['Telefono'];
        $direccion          = $item['Direccion'];
        $autorizacion       = $item['Autorizacion'];       

    }

    
    date_default_timezone_set('America/Costa_Rica');
    if(!$fecha)
        $fecha = date();//date('d/m/Y h:i:s a');
    $fecha = new DateTime($fecha);
    if ($strDBName == "VENTASCR" || $strDBName == "VENTASNUMAR")
        $cedula = "CED.JUR. $cedula";// COSTA RICA: CEDULA JURIDICA                        
    else
    {
        $cedula = "RUC No. ".$cedula."<br>AUTORIZACION DGI No. $autorizacion";// NICARAGUA: RUC        
    }
    if($strTipoDocumento == 'FACTURA')
    {
        if($plazo == 1)
        {
          if ($strTipoImpresion == "ORIGINAL")
                $encabezado = "<pre>F A C T U R A    D E    C O N T A D O</pre>";
            else
                $encabezado = "<pre>C O P I A    F A C T U R A    D E    C O N T A D O</pre>";
            
        }
        else
        {
            if ($strTipoImpresion == "ORIGINAL")
                $encabezado = "<pre>F A C T U R A    D E    C R E D I T O</pre>";
            else
                $encabezado = "<pre>C O P I A    F A C T U R A    D E    C R E D I T O</pre>";
            
            $dtFechaVencimiento = $fecha->add(new DateInterval('P'.$plazo.'D'));
            $dtFechaVencimiento = $dtFechaVencimiento->format('d/m/Y');
            $strPlazo = "PLAZO $plazo DIAS    VENCE $dtFechaVencimiento";
            
        }
        $strLineaTemp = "FACTURA  :".$numDocumento." FECHA :".date('d/m/Y h:i:s a');
    }
    else
    {
        if ($strDBName == "VENTASCR" || $strDBName == "VENTASNUMAR")
            $encabezado = "<pre>     I M P R E S I O N     D E     P E D I D O    ";
        if ($tipoCambio != 0.00)
            $encabezado = $encabezado."              E N    D O L A R E S                ";
        $encabezado = $encabezado."</pre>";
                                  
        $strLineaTemp = "PEDIDO:".$numDocumento." FECHA :".date('d/m/Y h:i:s a');
    }    
 $agente = "AGENTE: ".$_SESSION['codAgente']." ".$_SESSION['nombreAgente'];   
 $cliente = "CLIENTE: ".$_SESSION['IdCliente']." ".$nombreCliente;
 $dtInfoCliente = selectClienteInfo();
 foreach ($dtInfoCliente as $item) {
        $nombreCliente = $item['Nombre']; 		
        $telefonoCliente = $item['Telefono']; 		
        $direccionCliente = $item['Direccion']; 		
        
    }
    
foreach ($dtDetalle as $item) {
        $codArticulo = $item['CodArticulo']; 		
        $descripcion = $item['Descripcion']; 		
        $presentacion = $item['Presentacion']; 		
        $presentacion2 = $item['Presentacion2']; 		
        $factor = $item['Factor']; 			
        $cantidad = $item['Cantidad']; 			
        $precio = $item['Precio']; 			
        $monto = $item['Monto']; 				
        //$iv = $item['IV']; 				
        $montoFijo = $item['MontoFijo']; 			
        $montoPromocion = $item['MontoPromocion']; 	
        $montoCompetencia = $item['MontoCompetencia']; 	
        $descFijo = $item['DescFijo']; 			
        $descPromocion = $item['DescPromocion']; 		
        $descCompetencia = $item['DescCompetencia'];
        $plazo = $item['Plazo'];
        $totalDesc = $item['TotalDesc']; 			
       
        $detalleArticulo = "<tr>".$codArticulo." ". $descripcion."</tr><br/>";
        //$pdf->writeHTMLCell(0, 0, '', '', $detalleArticulo, 0, 1, 0, true, '', true);
        
        $intTempMin = $cantidad % $factor;
        $intTempMax = ($cantidad - $intTempMin) / $factor;
        $desc = ($descFijo + $descPromocion + $descCompetencia); //* 100;
        $monto = $precio * $intTempMax * $factor;
        $monto = $monto - $montoFijo - $montoPromocion - $montoCompetencia;
        //$iv = $iv==0 ? '*' : $iv;
        
        if ($intTempMax != 0) //IMPRIMIR LINEA DE PRESENTACION MAXIMA
        {            
            $detalleLineasArticulo="<tr>".
                              " <td>$desc</td>".
                              " <td>".number_format((float)$precio, 2, '.', '')."</td>".
                              " <td>$presentacion</td>".
                              " <td>".number_format((float)$intTempMax, 2, '.', '')."</td>".
                              " <td>".number_format((float)$monto, 2, '.', '')."</td>".
                              "</tr>";//PRESENTACION //CANTIDAD //PRECIO UNIDAD //DESC% //MONTO
        }
        //$pdf->writeHTMLCell(0, 0, '', '', $detalleArticulo, 0, 1, 0, true, '', true);
        $intTempMax = 0;
        $monto = $precio * $intTempMin;
        
        if ($intTempMin != 0) //IMPRIMIR LINEA DE PRESENTACION MINIMA
        {            
            $detalleLineasArticulo2="<tr>".
                              " <td>$desc</td>".
                              " <td>".number_format((float)$precio, 2, '.', '')."</td>".
                              " <td>$presentacion2</td>".
                              " <td>".number_format((float)$intTempMin, 2, '.', '')."</td>".
                              " <td>".number_format((float)$monto, 2, '.', '')."</td>".
                              "</tr>";//PRESENTACION //CANTIDAD //PRECIO UNIDAD //DESC% //MONTO
        }
        $intTempMin = 0;
        //$pdf->writeHTMLCell(0, 0, '', '', $detalleArticulo2."</table>", 0, 1, 0, true, '', true);
        //$detalleArticulo2 = "<pre>".$detalleArticulo2.$detalleArticulo."</pre>";
        
        $detalleLineas = $detalleLineas.$detalleArticulo.$detalleLineasArticulo.$detalleLineasArticulo2;
        $detalleLineasArticulo = "";
        $detalleLineasArticulo2 = "";
    }
    //$pdf->writeHTMLCell(0, 0, '', '', $detalleArticulo2, 0, 1, 0, true, '', true);
    //
    
$html = <<<EOD
<p>$nombreCompannia
<br/>$direccion
<br/>TELEFONO: $telefono
<br/>$cedula
</p>    
<p style="text-align:center;">
<br/>$encabezado
$strPlazo
</p>
<p>$strLineaTemp
<br/>$agente
<br/>    
<br/>$cliente
<br/>TELEFONO: $telefonoCliente    
<br/>DIRECCION: $direccionCliente
<br/>
--------------------------------------------------------------------------
<br/>
<table border="0">
<tr>
<th colspan="5">DESCRIPCION</th>
</tr>
<tr>
<th>DESC</th>
<th>PRECIO</th>
<th>PT</th>
<th>CANT</th>
<th>MONTO</th>
<tr>
--------------------------------------------------------------------------
<br/>
$detalleLineas
</p>
EOD;

// Print text using writeHTMLCell()
//$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
$pdf->writeHTML($html, true, false, false, false, '');

// Set some content to print
$tipoCambio = selectTipoCambio();

if (!($strDBName == "VENTASNIC" && $strTipoDocumento == 'FACTURA' && $plazo == 1))
{
    $firma  = "<pre>----------------      ---------------   <br/>".
              " NOMBRE CLIENTE           # CEDULA          <br/>  </pre>";    
}
if ($strTipoDocumento == "FACTURA" && ($strDBName == "VENTASCR" || $strDBName == "VENTASNUMAR"))
{
    $notas ="AUTORIZADO EL 12/08/1997 MEDIANTE RESOLUCION #13-97 <br/>".
            "DE LA DIRECCION GENERAL DE TRIBUTACION DIRECTA <br/>".
            "ESTE DOCUMENTO ES TITULO EJECUTIVO SEGUN EL ARTICULO 460 <br/>".
            "DEL CODIGO DE COMERCIO <br/>".
            "LAS FACTURAS QUE NO SEAN CANCELADAS EN EL PLAZO ESTABLECIDO SUFRIRAN <br/>".
            "UN RECARGO DEL 3% MENSUAL SOBRE SALDOS <br/>".
            "RECIBI CONFORME_________________________ <br/>";
    
}
else
    $notas ="RECIBI CONFORME_________________________ <br/>";

if ($strTipoDocumento == "PEDIDO")
{
    $notas ="LOS PRECIOS DE LOS ARTICULOS PUEDEN VARIAR <br/>".
            "SIN PREVIO AVISO EN LA FACTURA FINAL<br/>".
            "RECIBI CONFORME_________________________ <br/>";
    
}
                        
$html = <<<EOD
<p style="text-align:center;">------- ULTIMA LINEA -------</p>
<pre>
SUBTOTAL          : **************$totalGeneral<br/>
IMPUESTO DE VENTA : **************$iv<br/>
TOTAL             : **************$totalNeto<br/>
* EXENTO DE IMPUESTO <br/>
TIPO CAMBIO : $tipoCambio <br/>
$firma <br/>
$notas <br/>
<p style="text-align:center;">*** GRACIAS POR SU COMPRA ***                   
<br/>------------------------------------------
</p>
</pre>   
EOD;

// Print text using writeHTMLCell()
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);

$pdf->lastPage();
// write some JavaScript code
$js = <<<EOD
app.alert('JavaScript Popup Example', 3, 0, 'Welcome');
var cResponse = app.response({
    cQuestion: 'How are you today?',
    cTitle: 'Your Health Status',
    cDefault: 'Fine',
    cLabel: 'Response:'
});
if (cResponse == null) {
    app.alert('Thanks for trying anyway.', 3, 0, 'Result');
} else {
    app.alert('You responded, "'+cResponse+'", to the health question.', 3, 0, 'Result');
}
EOD;

// force print dialog
$js .= 'print(true);';

// set javascript
$pdf->IncludeJS($js);
// ---------------------------------------------------------
//$pdf->

// Close and output PDF document
// This method has several options, check the source code documentation for more information.
$pdf->Output($numDocumento.'.pdf', 'I');

//============================================================+
// END OF FILE
//============================================================+
if ($strTipoDocumento == "FACTURA")
{
    if ($strTipoImpresion == "ORIGINAL")
        updateFacturaStatus($strIDDocumento,'C');//Cambio a Copiado
    else
        updateFacturaStatus($strIDDocumento,'I');//Cambio a Impreso
}
else
    updatePedidoImpreso($strIDDocumento,'I');
                    
                    
}
